home *** CD-ROM | disk | FTP | other *** search
-
-
-
- - 1 -
-
-
-
- 5. _C_o_n_v_e_r_t_i_n_g__F_F_T__r_o_u_t_i_n_e_s__f_r_o_m__C_H_A_L_L_E_N_G_E_c_o_m_p_l_i_b__t_o__S_C_S_L
-
-
- The FFT interfaces have changed between complib.sgimath and
- scsl. Here is the mapping for the user to port from
- complib.sgimath to the new scsl interfaces.
-
- For FFT initialization routines:
-
- Complib SCSL
- ******** *********
- cfft1di --> CCFFT (set isign = 0)
- zfft1di --> ZZFFT (set isign = 0)
- scfft1dui --> SCFFT (set isign = 0)
- dzfft1dui --> DZFFT (set isign = 0)
-
- cfftm1di --> CCFFTM (set isign = 0)
- zfftm1di --> ZZFFTM (set isign = 0)
- scfftm1dui --> SCFFTM (set isign = 0)
- dzfftm1dui --> DZFFTM (set isign = 0)
-
- cfft2di --> CCFFT2D (set isign = 0)
- zfft2di --> ZZFFT2D (set isign = 0)
- scfft2dui --> SCFFT2D (set isign = 0)
- dzfft2dui --> DZFFT2D (set isign = 0)
-
- cfft3di --> CCFFT3D (set isign = 0)
- zfft3di --> ZZFFT3D (set isign = 0)
- scfft3dui --> SCFFT3D (set isign = 0)
- dzfft3dui --> DZFFT3D (set isign = 0)
-
- The integer parameter isys may be set to either 0 or 1.
- isys=1 is the preferred value, but it does require you to
- allocate additional space for the table array compared to
- what was allocated for the coeff array in complib.sgimath.
- If you need to keep the FFT table array the same size as was
- used with the complib.sgimath FFT routines, use isys=0.
- Note, though, that additional space will be allocated during
- the initialization. When the table array is no longer
- needed, the extra space should be released usin g one of the
- following "FFT free" routines:
-
-
- Initialization Free Routine
- ************** ************
- CCFFT (isign = 0) CCFFTF
- ZZFFT (isign = 0) ZZFFTF
- SCFFT (isign = 0) SCFFTF
- DZFFT (isign = 0) DZFFTF
-
- CCFFTM (isign = 0) CCFFTMF
-
-
-
-
-
-
-
-
-
-
-
- - 2 -
-
-
-
- ZZFFTM (isign = 0) ZZFFTMF
- SCFFTM (isign = 0) SCFFTMF
- DZFFTM (isign = 0) DZFFTMF
-
- CCFFT2D (isign = 0) CCFFT2DF
- ZZFFT2D (isign = 0) ZZFFT2DF
- SCFFT2D (isign = 0) SCFFT2DF
- DZFFT2D (isign = 0) DZFFT2DF
-
- CCFFT3D (isign = 0) CCFFT3DF
- ZZFFT3D (isign = 0) ZZFFT3DF
- SCFFT3D (isign = 0) SCFFT3DF
- DZFFT3D (isign = 0) DZFFT3DF
-
-
-
- For the FFT routines:
-
- Complib SCSL
- ******** *********
- cfft1d --> CCFFT
- zfft1d --> ZZFFT
- scfft1du --> SCFFT
- dzfft1dui --> DZFFT
- csfft1du --> CSFFT
- zdfft1dui --> ZDFFT
-
- cfftm1di --> CCFFTM
- zfftm1di --> ZZFFTM
- scfftm1dui --> SCFFTM
- dzfftm1dui --> DZFFTM
- csfftm1dui --> CSFFTM
- zdfftm1dui --> ZDFFTM
-
- cfft2d --> CCFFT2D
- zfft2d --> ZZFFT2D
- scfft2du --> SCFFT2D
- dzfft2du --> DZFFT2D
- csfft2du --> CSFFT2D
- zdfft2du --> ZDFFT2D
-
- cfft3d --> CCFFT3D
- zfft3d --> ZZFFT3D
- scfft3du --> SCFFT3D
- dzfft3du --> DZFFT3D
- csfft3du --> CSFFT3D
- zdfft3du --> ZDFFT3D
-
- And here is a mapping of the parameters from the FFT
- interfaces in complib.sgimath to the new FFT interfaces in
- scsl.
-
-
-
-
-
-
-
-
-
-
-
- - 3 -
-
-
-
- 1 D ROUTINES (CC/ZZ, SC/DZ, CS/ZD FFT)
- **************************************
-
- Complib: cfft1d( sign, n, array, inc, coeff )
- SCSL : ccfft (isign, n, scale, x, y, table, work, isys)
-
- Complib SCSL arguments
- ******* **************
- sign -> isign
- n -> n
- array -> x,y
- inc -> ignore if 1 (else you need to gather/scatter your data)
- coeff -> table
-
- user needs to set scale to 1.0E0 (or 1.0D0 if ZZ,DZ,or ZD)
- user needs to provide a workspace (see man page for correct size)
- user needs to set isys to integer one or zero
-
- 1 D Multiple Routines (CC/ZZ, SC/DZ, CS/ZD FFTM)
- ************************************************
-
- Complib: cfftm1d( sign, n, p, array, inc, lda, coef )
- SCSL : ccfftm (isign, n, lot, scale, x, ldx, y, ldy, table, work, isys)
- SCSL : ccfftmr(isign, n, lot, scale, x, ldx, y, ldy, table, work, isys)
-
- Complib SCSL arguments
- ******* **************
- sign -> isign
- n -> n
- p -> lot
- array -> x,y
- inc -> ignore if 1 (else you need to gather/scatter your data)
- lda -> ldx,ldy
- (if SCFFTM or DZFFTM, ldy = lda/2)
- (if CSFFTM or ZDFFTM, ldy = 2*lda)
- coef -> table
-
- user needs to set scale to 1.0E0 (or 1.0D0 if ZZ,DZ,or ZD)
- user needs to provide a workspace (see man page for correct size)
- user needs to set isys to integer one or zero
-
- 2 D Routines (CC/ZZ, SC/DZ, CS/ZD FFT2D)
- ****************************************
-
- Complib: cfft2d ( sign, n1, n2, array, lda, coef )
- SCSL : ccfft2d (isign, n1, n2, scale, x, ldx, y, ldy, table, work, isys)
-
- Complib SCSL arguments
- ******* **************
- sign -> isign
- n1 -> n1
-
-
-
-
-
-
-
-
-
-
-
- - 4 -
-
-
-
- n2 -> n2
- array -> x,y
- lda -> ldx,ldy
- (if SCFFT2 or DZFFT2, ldy = lda/2)
- (if CSFFT2 or ZDFFT2, ldy = 2*lda)
- coef -> table
-
- user needs to set scale to 1.0E0 (or 1.0D0 is ZZ,DZ,or ZD)
- user needs to provide a workspace (see man page for correct size)
- user needs to set isys to integer one or zero
-
- 3 D Routines (CC/ZZ, SC/DZ, CS/ZD FFT3D)
- ****************************************
-
- Complib: cfft3d ( sign, n1, n2, n3, array, la1, la2, coef )
- SCSL : ccfft3d (isign, n1, n2, n3, scale, x, ldx, ldx2,
- y, ldy, ldy2, table, work, isys)
-
-
- Complib SCSL arguments
- ******* **************
- sign -> isign
- n1 -> n1
- n2 -> n2
- n3 -> n3
- array -> x,y
- la1 -> ldx,ldy
- (if SCFFT3 or DZFFT3, ldy = la1/2)
- (if CSFFT3 or ZDFFT3, ldy = 2*la1)
- la2 -> ldx2,ldy2
- coef -> table
-
- user needs to set scale to 1.0E0 (or 1.0D0 if ZZ,DZ,or ZD)
- user needs to provide a workspace (see man page for correct size)
- user needs to set isys to integer one or zero
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-